package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.*;
import com.hualude.roadsign.model.RoadpoleEntity;

import java.util.List;

/**
 * Created by shao-yikun on 2017/4/7.
 */

public interface RoadSignManageService {

    /**
     * @Description: 标杆信息的DT展示
     * @Author: shao-yikun
     * @Date: 2017/3/4 18:44
     */
    public DTResponseDto getRoadPoleCollect4DT(DTRequestDto dtRequestDto,
                                               Integer orgId,
                                               String actorIds,
                                               String startRoad,
                                               String endRoad,
                                               String roadName,
                                               String saveState) throws Exception;

    /**
     * @Description: 补充或修改标杆信息
     * @Author: shao-yikun
     * @Date: 2017/3/5 14:01
     */
    public Integer updateRoadPoleCollect(RoadpoleDto roadpoleDto) throws Exception;

    /**
     * @Description: 添加标杆信息
     * @Author: shao-yikun
     * @Date: 2017/4/9 10:56
     */
    public Integer addRoadPoleCollect(RoadpoleDto roadpoleDto) throws Exception;

    /**
     * @Description: 删除标杆
     * @Author: shao-yikun
     * @Date: 2017/3/5 15:14
     */
    public Integer deleteRoadPoleCollect(String roadPoleIds) throws Exception;

    /**
     * @Description: 标牌信息的DT展示
     * @Author: shao-yikun
     * @Date: 2017/3/4 12:08
     */
    public DTResponseDto getRoadSignCollect4DT(DTRequestDto dtRequestDto,
                                               Integer roadPoleId) throws Exception;

    /**
     * @Description: 补充或修改标牌信息
     * @Author: shao-yikun
     * @Date: 2017/3/5 14:01
     */
    public Integer updateRoadSignCollect(RoadsignDto roadsignDto) throws Exception;

    /**
     * @Description: 添加标牌信息
     * @Author: shao-yikun
     * @Date: 2017/3/5 14:01
     */
    public Integer addRoadSignCollect(RoadsignDto roadsignDto) throws Exception;

    /**
     * @Description: 删除标牌信息
     * @Author: shao-yikun
     * @Date: 2017/3/5 20:14
     */
    public Integer deleteRoadSignCollect(String roadSignIds) throws Exception;


    /**
     * @Description: 根据标杆id 得到标杆信息
     * @Author: pan-jianan
     * @Date: 2017/4/21 19:59
     */
    public RoadpoleEntity getRoadPoleByRoadPoleId(Integer roadPoleId) throws Exception;


    /**
     * @Description: 根据标杆id 获取标牌信息
     * @Author: pan-jianan
     * @Date: 2017/4/21 20:14
     */
    public List<RoadsignDto> getSignByRoadPoleId(Integer roadPoleId) throws Exception;

    /**
     * @Description: 根据公司Id和权限得到标杆坐标
     * @Author: shao-yikun
     * @Date: 2017/3/14 22:32
     */
    public List<RoadpoleDto> getCoordinateByOrgId(Integer orgId,
                                                  String actorIds,
                                                  double neLongitude,
                                                  double neLatitude,
                                                  double swLongitude,
                                                  double swLatitude) throws Exception;

    /**
     * @Description: 动态加载省市区下拉框
     * @Author: xu-jiaHui
     * @Date: 2017/4/17 22:24
     */
    public List<RegionDto> getRegion4Select(Integer pId) throws Exception;

    /**
     * @Description: 根据地址获取行政区编码
     * @Author: shao-yikun
     * @Date: 2017/4/21 21:10
     */
    public Integer getRegionIdByAddress(String province, String city, String area) throws Exception;

    /**
     * @Description: 通过标杆id获取标牌
     * @Author: xu-jiaHui
     * @Date: 2017/4/21 22:08
     */
    public List<RoadsignDto> getRoadSignCollect(Integer roadPoleId) throws Exception;

    /**
     * @Description: 通过路名获取路段
     * @Author: xu-jiaHui
     * @Date: 2017/4/23 23:12
     */
    public List<String> getRoadByRoadName(String roadName, Integer actroId, Integer orgId) throws Exception;

    /**
     * @Description: 通过起始路段搜索截止路段
     * @Author: xu-jiaHui
     * @Date: 2017/4/23 23:50
     */
    public List<String> getSectionByRoadName(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: app端搜索标杆
     * @Author: chenzetong
     * @Date: 2017/4/24 20:23
     */
    public List<RoadpoleDto> getRoadPoleBySearch(Integer orgId, String actorIds, String strSearch, Integer mCount, Integer mySize) throws Exception;

    /**
     * @Description: 故障上报 标杆信息datatable
     * @Author: pan-jianan
     * @Date: 2017/4/26 20:14
     */
    public DTResponseDto getRoadPole2Report4DT(DTRequestDto dtRequestDto, Integer orgId, Integer userId, String startRoad,
                                               String endRoad, Integer actorId) throws Exception;

    /**
     * @Description: 批量设置标杆的监管单位
     * @Author: xu-jiaHui
     * @Date: 2017/5/4 21:00
     */
    public Integer setRoadPoleMainOrg(String roadPoleIds, Integer mainOrgId) throws Exception;

    /**
     * @Description: 根据标牌Id获取标牌信息
     * @Author: shao-yikun
     * @Date: 2017/3/23 16:15
     */
    public RoadsignDto getRoadSignByRoadSignId(Integer roadSignId) throws Exception;

    /**
     * @Description: 通过公司Id获取所有路名
     * @author chen-zetong
     * @date 2017/5/18 13:40
     */
    public List<String> getRoadByOrgId(Integer orgId, String city) throws Exception;

    /**
     * @Description: 通过公司获取所有城市
     * @Author: shao-yikun
     * @Date: 2017/6/1 下午4:51
     */
    public List<String> getCityByOrgId(Integer orgId) throws Exception;

    /**
     * @Description: app端搜索标杆(路名)
     * @Author: chenzetong
     * @Date: 2017/4/24 20:23
     */
    public List<RoadpoleDto> getRoadPoleByFiltrate(String roadName, String city, Integer orgId, String actorIds) throws Exception;


    /**
     * @Description: 获取标杆datatable4申请故障
     * @Author: pan-jianan
     * @Date: 2017/5/19 0:24
     */
    public DTResponseDto getRoadPole4ReportDT(DTRequestDto dtRequestDto, Integer orgId, String actorIds, String startRoad,
                                              String endRoad, String roadName) throws Exception;

    /**
     * @Description: 通过equipmentId获取事件历史
     * @Author: xu-jiaHui
     * @Date: 2017/6/8 22:24
     */
    public DTResponseDto getHistory4DT(DTRequestDto dtRequestDto,
                                       Integer equipmentId,
                                       Integer equipmentType) throws Exception;

    /**
     * @Description: 通过equipmentId获取事件历史4APP
     * @Author: shao-yikun
     * @Date: 2017/6/10 上午9:30
     */
    public List<HistoryDto> getHistory4APP(Integer equipmentId,
                                           Integer equipmentType,
                                           Integer mCount,
                                           Integer mSize) throws Exception;

}
